package com.irdstudio.efp.rule.service.dao;

import java.util.List;

import com.irdstudio.efp.rule.service.domain.TaxAgainstLawInfo;
import com.irdstudio.efp.rule.service.domain.TaxIncomeTaxInfo;
import com.irdstudio.efp.rule.service.vo.TaxIncomeTaxInfoVO;

/**
 * DAO Interface: 收入纳税信息表
 * @author ligm
 * @date 2019-04-29 
 */
public interface TaxIncomeTaxInfoDao {
	
	/**
	 * 新增数据 
     * @param inTaxIncomeTaxInfoVo
	 * @return 
	 */
	public int insertTaxIncomeTaxInfo(TaxIncomeTaxInfo taxIncomeTaxInfo);

    /**
	 * 根据主键删除信息 
     * @param inTaxIncomeTaxInfoVo
	 * @return 
	 */
	public int deleteByPk(TaxIncomeTaxInfo taxIncomeTaxInfo);

    /**
	 * 根据主键更新信息 
     * @param inTaxIncomeTaxInfoVo
	 * @return 
	 */    
	public int updateByPk(TaxIncomeTaxInfo taxIncomeTaxInfo);

    /**
	 * 根据主键查询详情 
     * @param taxIncomeTaxInfo
	 * @return 
	 */
    public TaxIncomeTaxInfo queryByPk(TaxIncomeTaxInfo taxIncomeTaxInfo);

    /**
	 * 一级数据权限,默认查看当前用户对应的数据 
     * @param taxIncomeTaxInfo
	 * @return 
	 */
	public List<TaxIncomeTaxInfo> queryAllByLevelOneByPage(TaxIncomeTaxInfoVO taxIncomeTaxInfo);
	
    /**
	 * 二级数据权限,默认查看当前用户及所属机构对应的数据 
     * @param taxIncomeTaxInfo
	 * @return 
	 */
	public List<TaxIncomeTaxInfo> queryAllByLevelTwoByPage(TaxIncomeTaxInfoVO taxIncomeTaxInfo);
	
    /**
	 * 三级数据权限,默认查看当前用户所在机构及下属机构对应的数据 
     * @param taxIncomeTaxInfo
	 * @return 
	 */
	public List<TaxIncomeTaxInfo> queryAllByLevelThreeByPage(TaxIncomeTaxInfoVO taxIncomeTaxInfo);

    /**
	 * 四级数据权限,默认预留，便于后续自定义 
     * @param taxIncomeTaxInfo
	 * @return 
	 */
    public List<TaxIncomeTaxInfo> queryAllByLevelFourByPage(TaxIncomeTaxInfoVO taxIncomeTaxInfo);

    /**
	 * 五级数据权限,默认预留，便于后续自定义 
     * @param taxIncomeTaxInfo
	 * @return 
	 */
    public List<TaxIncomeTaxInfo> queryAllByLevelFiveByPage(TaxIncomeTaxInfoVO taxIncomeTaxInfo);

    /**
     * 
     * TODO 根据证件类型和证件号码查找客户的收入信息<br>
     * @author wanglihua
     * @since 2019年5月8日 下午2:20:19
     * @date 2019年5月8日 下午2:20:19
     * @version 0.1
     */
	public List<TaxAgainstLawInfo> queryIncome(TaxAgainstLawInfo taxAgainstLawInfo);

	/**
	 * 需求编号：2019D0519<br/>
	 * 问题编号：<br/>
	 * 功能描述：通过授信流水号查询所有的纳税记录<br/>
	 * 开发人员：周才顺<br/>
	 * 创建时间：2019年5月21日 下午3:47:49<br/>
	 * @author zhoucs1
	 * @since  1.0 
	 * @version 1.0
	 * @param taxIncomeTaxInfoVo
	 * @return
	 */
	public List<TaxIncomeTaxInfo> queryAllByLmtApplySeq(TaxIncomeTaxInfoVO taxIncomeTaxInfoVo);
    /**
     * 根据授信流水号查询时间最大的收入纳税信息表信息
     * 
     * @author weijj
     * @since 2019年5月29日 上午9:56:08
     * @version 1.0
     */
    public TaxIncomeTaxInfo queryMaxTaxIncomeTaxInfoBycrdtAppFlowNo(TaxIncomeTaxInfo taxIncomeTaxInfo);

    /**
	 * 
	 * TODO 查询扣缴义务人识别号<br>
	 * @author wanglihua
	 * @since 2019年7月1日 下午3:06:03
	 * @date 2019年7月1日 下午3:06:03
	 * @version 0.1 
	 */
	public TaxIncomeTaxInfo queryWthldngAgntNo(TaxIncomeTaxInfo taxIncomeTaxInfo);
}
